#ifndef _TCP_CLIENT_H
#define _TCP_CLIENT_H

#include <stdint.h>
#include <stdbool.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/queue.h"
#include "freertos/semphr.h"
#include "lwip/sockets.h"
#include <freertos/timers.h> // TimerHandle_t 定义在这里

// 配置参数
#define TCP_SEND_QUEUE_SIZE 32
#define TCP_RECV_BUFFER_SIZE 2048
#define TCP_SEND_INTERVAL_MS 2000
#define HEARTBEAT_INTERVAL_MS    1000   // 1秒心跳间隔

// 数据包结构
typedef struct {
    uint8_t *data;
    size_t length;
    bool is_dma; // 是否为DMA缓冲区
} TcpPacket;

// 初始化TCP客户端
void tcp_client_init(const char *server_ip, int server_port);

// 启动TCP客户端任务
void tcp_client_start(const char *server_ip, int server_port);

// 停止TCP客户端任务
void tcp_client_stop(void);

// 发送数据到服务器
bool tcp_send_data(const uint8_t *data, size_t len);

// 获取TCP连接状态
bool tcp_is_connected(void);

// 发送答题结果给server
int send_answer_result(int question_number, int result_flag);
void process_question_result(void);



#endif // TCP_CLIENT_H